#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

typedef int QueueDataType;
typedef struct QueueNode
{
	struct QueueNode* next;
	QueueDataType Data;
}QN;

typedef struct Queue
{
	QN* head;
	QN* tail;
}Q;

void QueueInit(Q* p);
void QueueDestory(Q* P);
void QueuePush(Q* p, QueueDataType x);
void QueuePrint(Q* p);
void QueuePop(Q* p);
QueueDataType QueueFront(Q* p);
QueueDataType QueueBack(Q* p);
int QueueSize(Q* p);
bool QueueEmpty(Q* p);